package com.oazon.sonos.core;

import java.util.HashMap;
import java.util.Map;

import android.content.Context;

import com.oazon.moco.bean.McServiceMsg;

public class SonosControler {


	private static Map<Integer, ISonosSoap> soaps = new HashMap<Integer, ISonosSoap>();
	
	private SonosControler(){}

	public synchronized static ISonosSoap getInstance(Context context,
			McServiceMsg serViceMsg) {

		ISonosSoap controller = null;
		if (context == null) {
			return null;
		}
		
		if (serViceMsg == null) {
			controller = O2Controler.getInstance(context);
		} else {
			controller = getSoapInstance(context, serViceMsg);
		}
		return controller;
	}

	private synchronized static ISonosSoap getSoapInstance(Context context,
			McServiceMsg serViceMsg) {
		ISonosSoap result = soaps.get(serViceMsg.getId());
		if (result == null) {
			result = new ThreadControler(context, serViceMsg);
			soaps.put(serViceMsg.getId(), result);
		}else{
			result.registMcServiceMsg(serViceMsg);
		}
		return result;
	}
	
	public synchronized static void deleteSoapById(int id){
		soaps.remove(id);
	}

}
